package com.letere.service;

import com.letere.bean.Blog;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author letere
 * @create 2021-05-26 14:37
 */
public interface BlogService {
    /**
     * 获取博客文章
     * @param id 文章id
     * @return Blog 文章的bean类
     */
    Blog getBlogById(Integer id);


    /**
     * 获取博客文章集合（模糊搜索）
     * @param title 标题
     * @return List<Blog> 文章集合
     */
    List<Blog> getBlogByTitle(String title);


    /**
     * 获取博客文章集合（分类）
     * @param categories 分类
     * @return List<Blog> 文章集合
     */
    List<Blog> getBlogByCategories(String categories);


    /**
     * 获取博客文章集合（分页）
     * @param currentPage 当前页码
     * @param limit 页面数据大小
     * @return List<Blog> 博客文章集合
     */
    List<Blog> getBlogsByPage(Integer currentPage, Integer limit);


    /**
     * 获取分类名集合
     * @return List<String> 分类名集合
     */
    List<String> getCategories();


    /**
     * 获取博客文章总数量（用于前端分页）
     * @return Integer 数量
     */
    Integer getBlogSize();


    /**
     * 获取下一个博客id
     * @return Integer 下一个博客id
     */
    Integer getNextBlogId();


    /**
     * 新增博客文章
     * @param blog 博客文章bean
     */
    void addBlog(Blog blog);


    /**
     * 更新博客文章
     * @param blog 博客文章bean
     */
    void updateBlog(Blog blog);


    /**
     * 删除博客文章
     * @param id 博客文章id
     */
    void deleteBlogById(Integer id);
}
